<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.17"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>CANopenNode: Emergency producer/consumer</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
  $(document).ready(function() { init_search(); });
/* @license-end */
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">CANopenNode
   </div>
  </td>
   <td>        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
</td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.17 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('group__CO__STACK__CONFIG__EMERGENCY.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="#define-members">Macros</a>  </div>
  <div class="headertitle">
<div class="title">Emergency producer/consumer<div class="ingroups"><a class="el" href="group__CO__CANopen__301.html">CANopen_301</a> &raquo; <a class="el" href="group__CO__driver.html">Driver</a> &raquo; <a class="el" href="group__CO__STACK__CONFIG.html">Stack configuration</a></div></div>  </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:ga16aa1479ffd52a627d1053c20f844b62"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__STACK__CONFIG__EMERGENCY.html#ga16aa1479ffd52a627d1053c20f844b62">CO_CONFIG_EM</a>&#160;&#160;&#160;(CO_CONFIG_EM_PRODUCER | CO_CONFIG_EM_HISTORY)</td></tr>
<tr class="memdesc:ga16aa1479ffd52a627d1053c20f844b62"><td class="mdescLeft">&#160;</td><td class="mdescRight">Configuration of <a class="el" href="group__CO__Emergency.html">Emergency</a>.  <a href="group__CO__STACK__CONFIG__EMERGENCY.html#ga16aa1479ffd52a627d1053c20f844b62">More...</a><br /></td></tr>
<tr class="separator:ga16aa1479ffd52a627d1053c20f844b62"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab87776d4802748671b234112263760af"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__STACK__CONFIG__EMERGENCY.html#gab87776d4802748671b234112263760af">CO_CONFIG_EM_ERR_STATUS_BITS_COUNT</a>&#160;&#160;&#160;(10*8)</td></tr>
<tr class="memdesc:gab87776d4802748671b234112263760af"><td class="mdescLeft">&#160;</td><td class="mdescRight">Maximum number of <a class="el" href="group__CO__Emergency.html#ga587034df9d350c8e121c253f1d4eeacc">CO_EM_errorStatusBits_t</a>.  <a href="group__CO__STACK__CONFIG__EMERGENCY.html#gab87776d4802748671b234112263760af">More...</a><br /></td></tr>
<tr class="separator:gab87776d4802748671b234112263760af"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3c35cf4947c82a0b15afdbfa43a10d67"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__STACK__CONFIG__EMERGENCY.html#ga3c35cf4947c82a0b15afdbfa43a10d67">CO_CONFIG_EM_BUFFER_SIZE</a>&#160;&#160;&#160;16</td></tr>
<tr class="memdesc:ga3c35cf4947c82a0b15afdbfa43a10d67"><td class="mdescLeft">&#160;</td><td class="mdescRight">Size of the internal buffer, where emergencies are stored after error indication with <a class="el" href="group__CO__Emergency.html#ga9221f9f631ead4b6f66cfcff8614ba46">CO_error()</a> function.  <a href="group__CO__STACK__CONFIG__EMERGENCY.html#ga3c35cf4947c82a0b15afdbfa43a10d67">More...</a><br /></td></tr>
<tr class="separator:ga3c35cf4947c82a0b15afdbfa43a10d67"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad6270eb7887b22c0365c304d7cf2c633"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__STACK__CONFIG__EMERGENCY.html#gad6270eb7887b22c0365c304d7cf2c633">CO_CONFIG_ERR_CONDITION_GENERIC</a>&#160;&#160;&#160;(em-&gt;errorStatusBits[5] != 0)</td></tr>
<tr class="memdesc:gad6270eb7887b22c0365c304d7cf2c633"><td class="mdescLeft">&#160;</td><td class="mdescRight">Condition for calculating CANopen Error register, "generic" error bit.  <a href="group__CO__STACK__CONFIG__EMERGENCY.html#gad6270eb7887b22c0365c304d7cf2c633">More...</a><br /></td></tr>
<tr class="separator:gad6270eb7887b22c0365c304d7cf2c633"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga63af1aaa73297df53b555cb89cd0c07f"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__STACK__CONFIG__EMERGENCY.html#ga63af1aaa73297df53b555cb89cd0c07f">CO_CONFIG_ERR_CONDITION_CURRENT</a></td></tr>
<tr class="memdesc:ga63af1aaa73297df53b555cb89cd0c07f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Condition for calculating CANopen Error register, "current" error bit.  <a href="group__CO__STACK__CONFIG__EMERGENCY.html#ga63af1aaa73297df53b555cb89cd0c07f">More...</a><br /></td></tr>
<tr class="separator:ga63af1aaa73297df53b555cb89cd0c07f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2b1c3c4f106a8a5d7efda475b469a727"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__STACK__CONFIG__EMERGENCY.html#ga2b1c3c4f106a8a5d7efda475b469a727">CO_CONFIG_ERR_CONDITION_VOLTAGE</a></td></tr>
<tr class="memdesc:ga2b1c3c4f106a8a5d7efda475b469a727"><td class="mdescLeft">&#160;</td><td class="mdescRight">Condition for calculating CANopen Error register, "voltage" error bit.  <a href="group__CO__STACK__CONFIG__EMERGENCY.html#ga2b1c3c4f106a8a5d7efda475b469a727">More...</a><br /></td></tr>
<tr class="separator:ga2b1c3c4f106a8a5d7efda475b469a727"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaeb96443d9ea2142c346638612fd5c717"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__STACK__CONFIG__EMERGENCY.html#gaeb96443d9ea2142c346638612fd5c717">CO_CONFIG_ERR_CONDITION_TEMPERATURE</a></td></tr>
<tr class="memdesc:gaeb96443d9ea2142c346638612fd5c717"><td class="mdescLeft">&#160;</td><td class="mdescRight">Condition for calculating CANopen Error register, "temperature" error bit.  <a href="group__CO__STACK__CONFIG__EMERGENCY.html#gaeb96443d9ea2142c346638612fd5c717">More...</a><br /></td></tr>
<tr class="separator:gaeb96443d9ea2142c346638612fd5c717"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae47daba892331857e65df82272ed4152"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__STACK__CONFIG__EMERGENCY.html#gae47daba892331857e65df82272ed4152">CO_CONFIG_ERR_CONDITION_COMMUNICATION</a>&#160;&#160;&#160;(em-&gt;errorStatusBits[2] || em-&gt;errorStatusBits[3])</td></tr>
<tr class="memdesc:gae47daba892331857e65df82272ed4152"><td class="mdescLeft">&#160;</td><td class="mdescRight">Condition for calculating CANopen Error register, "communication" error bit.  <a href="group__CO__STACK__CONFIG__EMERGENCY.html#gae47daba892331857e65df82272ed4152">More...</a><br /></td></tr>
<tr class="separator:gae47daba892331857e65df82272ed4152"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaec2f6161e439dba5376808dcb0cdc36a"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__STACK__CONFIG__EMERGENCY.html#gaec2f6161e439dba5376808dcb0cdc36a">CO_CONFIG_ERR_CONDITION_DEV_PROFILE</a></td></tr>
<tr class="memdesc:gaec2f6161e439dba5376808dcb0cdc36a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Condition for calculating CANopen Error register, "device profile" error bit.  <a href="group__CO__STACK__CONFIG__EMERGENCY.html#gaec2f6161e439dba5376808dcb0cdc36a">More...</a><br /></td></tr>
<tr class="separator:gaec2f6161e439dba5376808dcb0cdc36a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3717ce44b5db3189757d874f440adce1"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__STACK__CONFIG__EMERGENCY.html#ga3717ce44b5db3189757d874f440adce1">CO_CONFIG_ERR_CONDITION_MANUFACTURER</a>&#160;&#160;&#160;(em-&gt;errorStatusBits[8] || em-&gt;errorStatusBits[9])</td></tr>
<tr class="memdesc:ga3717ce44b5db3189757d874f440adce1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Condition for calculating CANopen Error register, "manufacturer" error bit.  <a href="group__CO__STACK__CONFIG__EMERGENCY.html#ga3717ce44b5db3189757d874f440adce1">More...</a><br /></td></tr>
<tr class="separator:ga3717ce44b5db3189757d874f440adce1"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<h2 class="groupheader">Macro Definition Documentation</h2>
<a id="ga16aa1479ffd52a627d1053c20f844b62"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga16aa1479ffd52a627d1053c20f844b62">&#9670;&nbsp;</a></span>CO_CONFIG_EM</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define CO_CONFIG_EM&#160;&#160;&#160;(CO_CONFIG_EM_PRODUCER | CO_CONFIG_EM_HISTORY)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Configuration of <a class="el" href="group__CO__Emergency.html">Emergency</a>. </p>
<p>Possible flags, can be ORed:</p><ul>
<li>CO_CONFIG_EM_PRODUCER - Enable emergency producer.</li>
<li>CO_CONFIG_EM_PROD_CONFIGURABLE - Emergency producer COB-ID is configurable, OD object 0x1014. If not configurable, then 0x1014 is read-only, COB_ID is set to CO_CAN_ID_EMERGENCY + nodeId and write is not verified.</li>
<li>CO_CONFIG_EM_PROD_INHIBIT - Enable inhibit timer on emergency producer, OD object 0x1015.</li>
<li>CO_CONFIG_EM_HISTORY - Enable error history, OD object 0x1003, "Pre-defined error field"</li>
<li>CO_CONFIG_EM_CONSUMER - Enable emergency consumer.</li>
<li>CO_CONFIG_EM_STATUS_BITS - Access <a class="el" href="group__CO__Emergency.html#ga587034df9d350c8e121c253f1d4eeacc">CO_EM_errorStatusBits_t</a> from OD.</li>
<li><a class="el" href="group__CO__STACK__CONFIG__COMMON.html#gab55099df45bed12f182ef7c0c779dc14" title="Enable custom callback after CAN receive.">CO_CONFIG_FLAG_CALLBACK_PRE</a> - Enable custom callback after preprocessing emergency condition by <a class="el" href="group__CO__Emergency.html#gab66d4a6daa5f7492704b56a46b135f71" title="Report error condition, for description of parameters see CO_error.">CO_errorReport()</a> or <a class="el" href="group__CO__Emergency.html#ga24e2a9311cf704ec6ed43b0ea730c4a3" title="Reset error condition, for description of parameters see CO_error.">CO_errorReset()</a> call. Callback is configured by <a class="el" href="group__CO__Emergency.html#ga94efd78032de3667e2a89780b08aabed" title="Initialize Emergency callback function.">CO_EM_initCallbackPre()</a>.</li>
<li><a class="el" href="group__CO__STACK__CONFIG__COMMON.html#ga9e84c3a9256f15246be7766a61096c2d" title="Enable calculation of timerNext_us variable.">CO_CONFIG_FLAG_TIMERNEXT</a> - Enable calculation of timerNext_us variable inside <a class="el" href="group__CO__Emergency.html#ga93ae7be6ef966192f5761ce343345d3b" title="Process Error control and Emergency object.">CO_EM_process()</a>. </li>
</ul>

</div>
</div>
<a id="gab87776d4802748671b234112263760af"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gab87776d4802748671b234112263760af">&#9670;&nbsp;</a></span>CO_CONFIG_EM_ERR_STATUS_BITS_COUNT</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define CO_CONFIG_EM_ERR_STATUS_BITS_COUNT&#160;&#160;&#160;(10*8)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Maximum number of <a class="el" href="group__CO__Emergency.html#ga587034df9d350c8e121c253f1d4eeacc">CO_EM_errorStatusBits_t</a>. </p>
<p>Stack uses 6*8 = 48 <a class="el" href="group__CO__Emergency.html#ga587034df9d350c8e121c253f1d4eeacc">CO_EM_errorStatusBits_t</a>, others are free to use by manufacturer. Allowable value range is from 48 to 256 bits in steps of 8. Default is 80. </p>

</div>
</div>
<a id="ga3c35cf4947c82a0b15afdbfa43a10d67"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga3c35cf4947c82a0b15afdbfa43a10d67">&#9670;&nbsp;</a></span>CO_CONFIG_EM_BUFFER_SIZE</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define CO_CONFIG_EM_BUFFER_SIZE&#160;&#160;&#160;16</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Size of the internal buffer, where emergencies are stored after error indication with <a class="el" href="group__CO__Emergency.html#ga9221f9f631ead4b6f66cfcff8614ba46">CO_error()</a> function. </p>
<p>Each emergency has to be post- processed by the <a class="el" href="group__CO__Emergency.html#ga93ae7be6ef966192f5761ce343345d3b">CO_EM_process()</a> function. In case of overflow, error is indicated but emergency message is not sent.</p>
<p>The same buffer is also used for OD object 0x1003, "Pre-defined error field".</p>
<p>Each buffer element consumes 8 bytes. Valid values are 1 to 254. </p>

</div>
</div>
<a id="gad6270eb7887b22c0365c304d7cf2c633"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gad6270eb7887b22c0365c304d7cf2c633">&#9670;&nbsp;</a></span>CO_CONFIG_ERR_CONDITION_GENERIC</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define CO_CONFIG_ERR_CONDITION_GENERIC&#160;&#160;&#160;(em-&gt;errorStatusBits[5] != 0)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Condition for calculating CANopen Error register, "generic" error bit. </p>
<p>Condition must observe suitable <a class="el" href="group__CO__Emergency.html#ga587034df9d350c8e121c253f1d4eeacc">CO_EM_errorStatusBits_t</a> and use corresponding member of errorStatusBits array from <a class="el" href="structCO__EM__t.html" title="Emergency object.">CO_EM_t</a> to calculate the condition. See also <a class="el" href="group__CO__Emergency.html#ga2cfc261cce03577083ee3f1a31d5e03c">CO_errorRegister_t</a>.</p>
<dl class="section warning"><dt>Warning</dt><dd>Size of <a class="el" href="group__CO__STACK__CONFIG__EMERGENCY.html#gab87776d4802748671b234112263760af">CO_CONFIG_EM_ERR_STATUS_BITS_COUNT</a> must be large enough. (CO_CONFIG_EM_ERR_STATUS_BITS_COUNT/8) must be larger than index of array member in em-&gt;errorStatusBits[index].</dd></dl>
<p>em-&gt;errorStatusBits[5] should be included in the condition, because they are used by the stack. </p>

</div>
</div>
<a id="ga63af1aaa73297df53b555cb89cd0c07f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga63af1aaa73297df53b555cb89cd0c07f">&#9670;&nbsp;</a></span>CO_CONFIG_ERR_CONDITION_CURRENT</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define CO_CONFIG_ERR_CONDITION_CURRENT</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Condition for calculating CANopen Error register, "current" error bit. </p>
<p>See <a class="el" href="group__CO__STACK__CONFIG__EMERGENCY.html#gad6270eb7887b22c0365c304d7cf2c633">CO_CONFIG_ERR_CONDITION_GENERIC</a> for description. Macro is not defined by default, so no error is verified. </p>

</div>
</div>
<a id="ga2b1c3c4f106a8a5d7efda475b469a727"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga2b1c3c4f106a8a5d7efda475b469a727">&#9670;&nbsp;</a></span>CO_CONFIG_ERR_CONDITION_VOLTAGE</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define CO_CONFIG_ERR_CONDITION_VOLTAGE</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Condition for calculating CANopen Error register, "voltage" error bit. </p>
<p>See <a class="el" href="group__CO__STACK__CONFIG__EMERGENCY.html#gad6270eb7887b22c0365c304d7cf2c633">CO_CONFIG_ERR_CONDITION_GENERIC</a> for description. Macro is not defined by default, so no error is verified. </p>

</div>
</div>
<a id="gaeb96443d9ea2142c346638612fd5c717"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaeb96443d9ea2142c346638612fd5c717">&#9670;&nbsp;</a></span>CO_CONFIG_ERR_CONDITION_TEMPERATURE</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define CO_CONFIG_ERR_CONDITION_TEMPERATURE</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Condition for calculating CANopen Error register, "temperature" error bit. </p>
<p>See <a class="el" href="group__CO__STACK__CONFIG__EMERGENCY.html#gad6270eb7887b22c0365c304d7cf2c633">CO_CONFIG_ERR_CONDITION_GENERIC</a> for description. Macro is not defined by default, so no error is verified. </p>

</div>
</div>
<a id="gae47daba892331857e65df82272ed4152"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gae47daba892331857e65df82272ed4152">&#9670;&nbsp;</a></span>CO_CONFIG_ERR_CONDITION_COMMUNICATION</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define CO_CONFIG_ERR_CONDITION_COMMUNICATION&#160;&#160;&#160;(em-&gt;errorStatusBits[2] || em-&gt;errorStatusBits[3])</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Condition for calculating CANopen Error register, "communication" error bit. </p>
<p>See <a class="el" href="group__CO__STACK__CONFIG__EMERGENCY.html#gad6270eb7887b22c0365c304d7cf2c633">CO_CONFIG_ERR_CONDITION_GENERIC</a> for description.</p>
<p>em-&gt;errorStatusBits[2] and em-&gt;errorStatusBits[3] must be included in the condition, because they are used by the stack. </p>

</div>
</div>
<a id="gaec2f6161e439dba5376808dcb0cdc36a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaec2f6161e439dba5376808dcb0cdc36a">&#9670;&nbsp;</a></span>CO_CONFIG_ERR_CONDITION_DEV_PROFILE</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define CO_CONFIG_ERR_CONDITION_DEV_PROFILE</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Condition for calculating CANopen Error register, "device profile" error bit. </p>
<p>See <a class="el" href="group__CO__STACK__CONFIG__EMERGENCY.html#gad6270eb7887b22c0365c304d7cf2c633">CO_CONFIG_ERR_CONDITION_GENERIC</a> for description. Macro is not defined by default, so no error is verified. </p>

</div>
</div>
<a id="ga3717ce44b5db3189757d874f440adce1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga3717ce44b5db3189757d874f440adce1">&#9670;&nbsp;</a></span>CO_CONFIG_ERR_CONDITION_MANUFACTURER</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define CO_CONFIG_ERR_CONDITION_MANUFACTURER&#160;&#160;&#160;(em-&gt;errorStatusBits[8] || em-&gt;errorStatusBits[9])</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Condition for calculating CANopen Error register, "manufacturer" error bit. </p>
<p>See <a class="el" href="group__CO__STACK__CONFIG__EMERGENCY.html#gad6270eb7887b22c0365c304d7cf2c633">CO_CONFIG_ERR_CONDITION_GENERIC</a> for description.</p>
<p>em-&gt;errorStatusBits[8] and em-&gt;errorStatusBits[8] are pre-defined, but can be changed. </p>

</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="footer">Generated on Sat Sep 19 2020 10:03:20 for CANopenNode by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.17 </li>
  </ul>
</div>
</body>
</html>
